/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controleur.TableModel;

import DAO.DAOException;
import DAO.DAOFactory;
import DAO.UtilisateurDAOmysql;
import DAO.UtilisateurDao;
import Modele.Technicien;
import Vue.TechnicienForm;
import javax.swing.JOptionPane;

/**
 *
 * @author 20cent
 */
public class TechnicienFormControleur {
    private TechnicienForm vue;
    private Technicien technicien;
    private UtilisateurDao dao;

    public TechnicienFormControleur(TechnicienForm vue) {
        this.vue = vue;
        this.dao = new UtilisateurDAOmysql(DAOFactory.getInstance());
    }
    
    
    public void enregistrer(Technicien nvTechnicien) {

        this.technicien = nvTechnicien;
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    dao.save(technicien);
                    JOptionPane.showMessageDialog(vue, "Insertion réalisée avec succès");
                } catch (DAOException e) {
                    JOptionPane.showMessageDialog(vue,
                            e.getMessage(), "Erreur", JOptionPane.WARNING_MESSAGE);
                } catch (Exception e) {
                    JOptionPane.showMessageDialog(vue,
                            "Une erreur s'est produite à l'insertion !", "Erreur", JOptionPane.WARNING_MESSAGE);
                }
                nemovelo.NemoVelo.techniciens.add(technicien);
                vue.dispose();
            }
        });
    }

    public void modifier(Technicien modTechnicien) {
        this.technicien = modTechnicien;
        java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    
                    dao.update(technicien);
                    JOptionPane.showMessageDialog(vue, "Modification réalisée avec succès");
                } catch (DAOException e) {
                    JOptionPane.showMessageDialog(vue,
                            e.getMessage(), "Erreur", JOptionPane.WARNING_MESSAGE);
                } catch (Exception e) {
                    JOptionPane.showMessageDialog(vue,
                            "Une erreur s'est produite à la modification !", "Erreur", JOptionPane.WARNING_MESSAGE);
                }
                technicien.notifierObserveurs(technicien.getClass().getSimpleName());
                vue.dispose();
            }
        });
    }
}
